package com.kun.rental.utils;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.kun.rental.entity.Dept;
import org.springframework.beans.BeanUtils;

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

public class DeptTreeUtils {
    /**
     * 根据部门列表和父部门ID构建部门树结构。
     *
     * @param deptList 部门列表，包含所有部门的信息。
     * @param pid 父部门的ID，用于筛选出指定父部门下的子部门。
     * @return 构建好的部门树结构列表。
     */
    public static List<Dept> buildTree(List<Dept> deptList, int pid) {
        List<Dept> deptTree = new ArrayList<>();
        Optional.ofNullable(deptList).orElse(new ArrayList<>())
                .stream().filter(dept -> dept != null && dept.getPid() == pid)
                .forEach(dept -> {
                    Dept dept1 = new Dept();
                    BeanUtils.copyProperties(dept, dept1);
                    dept1.setChildren(buildTree(deptList, dept.getId()));
                    deptTree.add(dept1);
                });
        return deptTree;
    }

}
